小白学JAVA,与你们感同身受,JAVA---day6:抽象类接口的理解。鲁迅的一句话:总之岁月漫长,然而值得等待。
抽象類接口的理解
魯迅的一句話:總之歲月漫長,然而值得等待。
/*
抽象類中的面試題:
1.一個抽象類中可不可以沒有抽象方法:可以,這樣做的目的只有一個,就是不讓其他類創建本類對象交給子類完成。
2.abstract關鍵字不能和哪些關鍵字共存:
? ?static final private
接口的概述與特點:
對外提供規則的都是接口,Java中interface為定義接口的關鍵字。
類實現接口用implements關鍵字。
接口不能實例化,用多態的方式來實例化。
接口的子類要重寫接口中的所有抽象方法。
接口中的成員特點:
1.成員變量只能是常量,并且是靜態的公共的,public static final。
2.構造方法:接口沒有。
3.成員方法:只有抽象方法,public abstract。
類、接口之間的聯系:
1.類與類:繼承關系,只能單繼承,可以多層繼承。
2.類與接口:實現關系,能多實現,可以繼承一個類的同時實現多個接口。
3.接口與接口:繼承關系,可以單繼承,也可以多繼承。
抽象類和接口的理念:
1.抽象類被繼承體現的是"is a"的關系,抽象類中定義的是該繼承體系中的共性功能。
2.接口被實現體現的是"like a"的關系,接口中定義的是該實現體系中的擴展功能。
?*/
/*
interface InterA{
?? ?abstract void printA();
}
interface InterB{
?? ?abstract void printB();
}
interface InterC extends InterA,InterB{
}*/
class day6{
?? ?public static void main(String[] args) {
?? ??? ?new Dog(16,"老大").eat();
?? ??? ?new Dog(18,"老二").sleep();
?? ??? ?new Cat(13,"花花").eat();
?? ??? ?new Cat(12,"草草").sleep();
?? ??? ?new Cat(12,"草草").jump();
?? ?}
}
/*
class demo implements InterC{
?? ?public void printA(){
?? ??? ?System.out.println("接口A");
?? ?}
?? ?public void printB(){
?? ??? ?System.out.println("接口B");
?? ?}
}
*/
interface Jump{
?? ?public abstract void jump();
}
abstract class Animal{
?? ?private int age;
?? ?private String name;
?? ?public Animal(){
?? ?}
?? ?public Animal(int age,String name){
?? ??? ?this.age=age;
?? ??? ?this.name=name;
?? ?}
?? ?abstract void eat();
?? ?abstract void sleep();
?? ?void setAge(int age){
?? ??? ?this.age=age;
?? ?}
?? ?void setName(String name){
?? ??? ?this.name=name;
?? ?}
?? ?int getAge(){
?? ??? ?return this.age;
?? ?}
?? ?String getName(){
?? ??? ?return this.name;
?? ?}
}
class Dog extends Animal{
?? ?public Dog(int age,String name){
?? ??? ?super(age,name);
?? ?}
?? ?void eat(){
?? ??? ?System.out.println(this.getAge()+"的"+this.getName()+"成功吃飯");
?? ?}
?? ?void sleep(){
?? ??? ?System.out.println(this.getAge()+"的"+this.getName()+"睡覺");
?? ?}
}
class Cat extends Animal implements Jump{
?? ?public Cat(int age,String name){
?? ??? ?super(age,name);
?? ?}
?? ?void eat(){
?? ??? ?System.out.println(this.getAge()+"的"+this.getName()+"成功吃飯");
?? ?}
?? ?void sleep(){
?? ??? ?System.out.println(this.getAge()+"的"+this.getName()+"睡覺");
?? ?}
?? ?public void jump(){
?? ??? ?System.out.println(this.getAge()+this.getName()+"學會了跳高");
?? ?}
}
?
總結
以上是生活随笔為你收集整理的小白学JAVA,与你们感同身受,JAVA---day6:抽象类接口的理解。鲁迅的一句话:总之岁月漫长,然而值得等待。的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于小样本学习的图像分类技术综述
- 下一篇: 最小生成树——普里姆算法和克鲁斯卡尔算法