栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java面向对象

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java面向对象

面向对象知识
  • 抽象类
    • 注意事项
  • 接口
    • 定义接口的详细说明
      • 接口中包含静态方法
      • 接口中包含默认方法
      • 默认方法中可以调用静态方法
  • 接口和抽象类的区别

抽象类

包含抽象方法的类就是抽象类,抽象类由关键字abstract定义,其中抽象方法也是用abstract来修饰,抽象方法没有方法体。继承抽象类的子类必须在其定义过程中实现父类中的抽象方法(重写),重写的方法中可以什么都不做,即方法体中为空。

//抽象类定义
abstract class Person{
		//抽象方法中可以包含各适用范围属性
		private int id;
		public String name;
		protected String sex="男";
		int age=26;
		//构造方法定义,抽象类中若是定义构造方法时候必须包含一个无参构造方法,不能只定义有参构造方法
		//或者不提供任何一种构造方法,此时,系统默认提供一个无参的构造方法
		public Person(){}
		public Person(String name){
				this.name=name;
		}
		//抽象方法定义,修饰符可以是default,public和protected
		abstract public void work(); //抽象方法定义,修饰符不能为private,因为private的情况下,子类无法访问,则更无法取实现。
		//以下抽象方法定义也可以
		//public abstract void work();
		//具体方法定义
		public void setId(int id){
				this.id=id;
		}
}
//子类继承抽象类并且必须实现其中的抽象方法
class Student extends Person{
		public void work() {
				System.out.println("上班!");
		}
}
注意事项

抽象类可以包含属性,方法和构造方法,抽象类中的构造方法不能用来new实例对象,只能被子类调用;
抽象类只能用来被继承,且抽象方法必须被子类实现;
含有抽象方法的类只能定义成抽象类;
抽象类不能创建实例,但是可以用于声明引用变量类型。

接口

接口中定义了一组规范或者说定义了一组规则,是对对象的一种抽象,最能体现面向对象的精髓。

定义接口的详细说明

1、访问修饰符只能是public或者默认修饰符;
2、接口名和类名采用相同命名机制;
3、extends:接口可以多继承;
4、接口中不能包含构造方法;
5、常量:接口中的属性只能是常量,总是public static final修饰,不写也是;
6、子类通过关键字implements来实现接口中的规范;
7、接口不能创建实例,但是可以用于声明引用变量类型;
8、接口中的方法只能是public abstract,省略也是,jdk1.8以后可以包含普通的静态方法或者默认方法。

接口中包含静态方法
public class Test {
		public static void main(String[] args) {
				A.staticMethod();
				Test_A.staticMethod();
		}
}
interface A {
		public static void staticMethod(){
				System.out.println("A.staticMethod");
		}
}
class Test_A implements A {
		public static void staticMethod(){
				System.out.println("Test_A.staticMethod");
		}
}
接口中包含默认方法
public class Test {
		public static void main(String[] args) {
				A a = new Test_A();
				a.moren();
		}
}
interface A {
		default void moren(){
				System.out.println("我是接口 A 中的默认方法!");
		}
}

class Test_A implements A {
		@Override
		public void moren() {
				System.out.println("Test_A.moren");
		}
}
默认方法中可以调用静态方法
public class Test {
		public static void main(String[] args) {
				A a = new Test_A();
				a.moren();
		}
}
interface A {
		public static void staticMethod(){
				System.out.println("A.staticMethod");
		}
		public default void moren(){
				staticMethod();
				System.out.println("A.moren");
		}
}

class Test_A implements A {
		public static void staticMethod(){
				System.out.println("Test_A.staticMethod");
		}
}


接口和抽象类的区别

1.接口就是比抽象类还要抽象的抽象类,可以更加规范的对子类进行约束。全面而专业地实现了:规范和具体实现的分离。
2. 抽象类还提供某些具体实现,接口不提供任何实现,接口中所有方法都是抽象方法。接
口是完全面向规范的,规定了一批类具有的公共方法规范。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/877903.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号